"""
添加专题训练示例数据的脚本

运行方式：
cd /Volumes/orico/Programming/高中数学助手-重构/mathassist
python manage.py shell < add_topic_training_data.py
"""

from learning.models import TopicTraining, TopicQuestion

# 创建专题训练
training, created = TopicTraining.objects.get_or_create(
    title="任意角与弧度制",
    defaults={
        "description": "掌握任意角的概念、角度制与弧度制的转换，理解终边相同的角的表示方法。",
        "is_active": True,
    }
)

if created:
    print(f"✅ 创建专题训练: {training.title}")
else:
    print(f"ℹ️  专题训练已存在: {training.title}")

# 题目数据（根据跳题逻辑设计.MD）
questions_data = [
    {
        "question_number": 1,
        "question_text": "$30^{\\circ}$ 的角的终边按逆时针方向旋转 $90^{\\circ}$, 得到的角是多少?",
        "correct_answer": "$120^{\\circ}$",
        "explanation": "这是因为它和射线直接按逆时针方向旋转 $120^{\\circ}$ 形成的角是一样的。因为任意角的概念中，正角负角的概念中已经包含了角终边按顺时针、逆时针旋转的方向，所以类似于问题1我们也可以这样叙述：$30^{\\circ}$ 的角终边旋转 $90^{\\circ}$，得到的是 $30^{\\circ} + 90^{\\circ} = 120^{\\circ}$。",
        "next_if_correct": 3,
        "next_if_wrong": 2,
    },
    {
        "question_number": 2,
        "question_text": "时钟的分针所转的角是正角还是负角？经过下列时间分针所转的角各是多少度？（1）12分钟；（2）2小时15分。",
        "correct_answer": "(1) $-72^{\\circ}$; (2) $-810^{\\circ}$",
        "explanation": "时钟的分针是顺时针旋转，所转的角是负角。\n(1) 经过12分钟，分针所转的角是 $12 \\times (-6^{\\circ}) = -72^{\\circ}$\n(2) 经过2小时15分，分针所转的角是：$135 \\times (-6^{\\circ}) = -810^{\\circ}$",
        "next_if_correct": 3,
        "next_if_wrong": 1,
    },
    {
        "question_number": 3,
        "question_text": "判断下列各角分别属于哪个象限：\n(1) $-240^{\\circ}$; (2) $2100^{\\circ}$",
        "correct_answer": "第二象限，第四象限",
        "explanation": "设 $a$ 与所求角的终边重合，且 $0^{\\circ} \\leq a < 360^{\\circ}$\n(1) 因为 $a = -360^{\\circ} + (-240^{\\circ}) = 120^{\\circ}$，而 $120^{\\circ}$ 的角属于第二象限，所以 $-240^{\\circ}$ 的角属于第二象限。\n(2) 因为 $a = -5 \\times 360^{\\circ} + 2100^{\\circ} = 300^{\\circ}$，而 $300^{\\circ}$ 的角属于第四象限，所以 $2100^{\\circ}$ 的角属于第四象限。",
        "next_if_correct": 7,
        "next_if_wrong": 5,
    },
    {
        "question_number": 4,
        "question_text": "在下列各组的两个角中，终边不重合的一组是（）\nA. $-43^{\\circ}$ 与 $677^{\\circ}$\nB. $900^{\\circ}$ 与 $-1260^{\\circ}$\nC. $-120^{\\circ}$ 与 $960^{\\circ}$\nD. $150^{\\circ}$ 与 $630^{\\circ}$",
        "correct_answer": "D",
        "explanation": "终边重合的两个角相差 $360^{\\circ}$ 的整数倍，而 $677^{\\circ} - (-43^{\\circ}) = 360^{\\circ} \\times 2$，$-1260^{\\circ} - 900^{\\circ} = 360^{\\circ} \\times (-6)$，$960^{\\circ} - (-120^{\\circ}) = 360^{\\circ} \\times 3$，$630^{\\circ} - 150^{\\circ} = 360^{\\circ} \\times \\frac{4}{3}$ 所以 $150^{\\circ}$ 与 $630^{\\circ}$ 终边不重合。",
        "next_if_correct": 7,
        "next_if_wrong": 5,
    },
    {
        "question_number": 5,
        "question_text": "找出与下列各角的终边重合的角 $\\alpha$ ($0^{\\circ} \\leq \\alpha < 360^{\\circ}$)，并判别下列各角是第几象限的角：\n（1）$-1441^{\\circ}$；（2）$890^{\\circ}$",
        "correct_answer": "（1）$359^{\\circ}$，第四象限。(2）$170^{\\circ}$，第二象限",
        "explanation": "将角度除以360°，找出同终边的角。\n(1) $-1441^{\\circ} = -4 \\times 360^{\\circ} - 1^{\\circ} = 359^{\\circ}$（在0°到360°范围内），属于第四象限。\n(2) $890^{\\circ} = 2 \\times 360^{\\circ} + 170^{\\circ} = 170^{\\circ}$，属于第二象限。",
        "next_if_correct": 7,
        "next_if_wrong": 6,
    },
    {
        "question_number": 6,
        "question_text": "写出与 $-200^{\\circ}$ 的终边重合的所有角组成的集合 $S$，并列举 $S$ 中满足不等式 $-360^{\\circ} \\leq \\beta < 720^{\\circ}$ 的所有元素 $\\beta$。",
        "correct_answer": "$S = \\{\\beta | \\beta = k \\times 360^{\\circ} - 200^{\\circ}, k \\in \\mathbb{Z}\\}$，$\\beta = -200^{\\circ}$ 或 $160^{\\circ}$ 或 $520^{\\circ}$",
        "explanation": "因为 $S = \\{\\beta | \\beta = k \\times 360^{\\circ} - 200^{\\circ}, k \\in \\mathbb{Z}\\}$\n所以当 $-360^{\\circ} \\leq \\beta < 720^{\\circ}$ 时，即：$-360^{\\circ} \\leq k \\times 360^{\\circ} - 200^{\\circ} < 720^{\\circ}$。\n$-\\frac{4}{9} \\leq k < \\frac{23}{9}$，又因为 $k \\in \\mathbb{Z}$，所以 $k = 0, 1, 2$。\n$\\beta = -200^{\\circ}$ 或 $160^{\\circ}$ 或 $520^{\\circ}$。",
        "next_if_correct": 7,
        "next_if_wrong": 5,
    },
    {
        "question_number": 7,
        "question_text": "已知 $0^{\\circ} < \\beta < 180^{\\circ}$，若将角 $\\beta$ 的终边顺时针旋转 $120^{\\circ}$ 所得的角的终边与角 $\\beta$ 的5倍角的终边重合。求角 $\\beta$。",
        "correct_answer": "$60^{\\circ}$ 或 $150^{\\circ}$",
        "explanation": "根据题意：$\\beta - 120^{\\circ} = 5\\beta + k \\times 360^{\\circ}$（其中 $k \\in \\mathbb{Z}$）\n整理得：$-4\\beta = 120^{\\circ} + k \\times 360^{\\circ}$\n$\\beta = -30^{\\circ} - k \\times 90^{\\circ}$\n由于 $0^{\\circ} < \\beta < 180^{\\circ}$，可得 $k = -1$ 或 $k = -2$\n当 $k = -1$ 时，$\\beta = 60^{\\circ}$\n当 $k = -2$ 时，$\\beta = 150^{\\circ}$",
        "next_if_correct": 9,
        "next_if_wrong": 8,
    },
    {
        "question_number": 8,
        "question_text": "已知 $\\alpha$ 为锐角，且 $\\alpha$ 的终边与 $7\\alpha$ 的终边关于 $x$ 轴对称，求 $\\alpha$ 的大小。",
        "correct_answer": "$45^{\\circ}$",
        "explanation": "由已知，$\\alpha + 7\\alpha = k \\times 360^{\\circ}$ ($k \\in \\mathbb{Z}$)，得 $\\alpha = k \\times 45^{\\circ}$\n又因为 $\\alpha$ 是锐角，所以 $0^{\\circ} < k \\times 45^{\\circ} < 90^{\\circ}$，解得 $0 < k < 2$，由 $k \\in \\mathbb{Z}$，得 $k = 1$。因此 $\\alpha = 45^{\\circ}$。",
        "next_if_correct": 9,
        "next_if_wrong": 7,
    },
    {
        "question_number": 9,
        "question_text": "若角 $\\alpha, \\beta$ 的终边相同，则 $\\alpha - \\beta$ 的终边落在（）\nA. $x$ 轴的非负半轴上\nB. $x$ 轴的非正半轴上\nC. $x$ 轴上\nD. $y$ 轴的非负半轴上",
        "correct_answer": "A",
        "explanation": "因为角 $\\alpha, \\beta$ 的终边相同，故 $\\alpha - \\beta = k \\cdot 360^{\\circ}, k \\in \\mathbb{Z}$。所以 $\\alpha - \\beta$ 的终边落在 $x$ 轴的非负半轴上。",
        "next_if_correct": 11,
        "next_if_wrong": 10,
    },
    {
        "question_number": 10,
        "question_text": "已知 $\\alpha$ 与 $\\beta$ 都是锐角，$\\alpha + \\beta$ 的终边与 $-280^{\\circ}$ 的终边重合、$\\alpha - \\beta$ 的终边与 $-670^{\\circ}$ 的终边重合，求 $\\alpha$ 与 $\\beta$ 的大小。",
        "correct_answer": "$\\alpha = 65^{\\circ}$，$\\beta = 15^{\\circ}$",
        "explanation": "由题意可知，$\\alpha + \\beta = -280^{\\circ} + k \\times 360^{\\circ}$ ($k \\in \\mathbb{Z}$)。\n因为 $\\alpha$、$\\beta$ 都是锐角，所以 $0^{\\circ} < \\alpha + \\beta < 180^{\\circ}$，取 $k = 1$，得 $\\alpha + \\beta = 80^{\\circ}$ ①\n又 $\\alpha - \\beta = -670^{\\circ} + k \\times 360^{\\circ}$ ($k \\in \\mathbb{Z}$)。\n因为 $\\alpha$、$\\beta$ 都是锐角，所以 $-90^{\\circ} < \\alpha - \\beta < 90^{\\circ}$，取 $k = 2$，得 $\\alpha - \\beta = 50^{\\circ}$ ②\n由①②，可得 $\\alpha = 65^{\\circ}$，$\\beta = 15^{\\circ}$。",
        "next_if_correct": 11,
        "next_if_wrong": 9,
    },
    {
        "question_number": 11,
        "question_text": "已知点 $P$ 位于 $x$ 轴正半轴上，射线 $OP$ 在1秒内转过的角为 $\\theta$ ($0^{\\circ} < \\theta < 180^{\\circ}$)，经过2秒到达第三象限，若经过14秒后又恰好回到出发点，则 $\\theta =$ ______。",
        "correct_answer": "$\\frac{720}{7}^{\\circ}$ 或 $\\frac{900}{7}^{\\circ}$",
        "explanation": "∵ $0^{\\circ} < \\theta < 180^{\\circ}$ 且 $k \\cdot 360^{\\circ} + 180^{\\circ} < 2\\theta < k \\cdot 360^{\\circ} + 270^{\\circ}$ ($k \\in \\mathbb{Z}$)\n∴ 必有 $k = 0$，$90^{\\circ} < \\theta < 135^{\\circ}$。\n又 $14\\theta = n \\cdot 360^{\\circ}$ ($n \\in \\mathbb{Z}$)\n∴ $\\theta = \\frac{n}{7} \\cdot 180^{\\circ}$\n∴ $90^{\\circ} < \\frac{n}{7} \\cdot 180^{\\circ} < 135^{\\circ}$\n即 $\\frac{7}{2} < n < \\frac{21}{4}$\n∴ $n = 4$ 或 5。\n故 $\\theta = \\frac{720}{7}^{\\circ}$ 或 $\\frac{900}{7}^{\\circ}$",
        "next_if_correct": None,  # 训练结束
        "next_if_wrong": None,  # 训练结束
    },
]

# 创建题目
for q_data in questions_data:
    question, created = TopicQuestion.objects.get_or_create(
        training=training,
        question_number=q_data["question_number"],
        defaults={
            "question_text": q_data["question_text"],
            "correct_answer": q_data["correct_answer"],
            "explanation": q_data["explanation"],
            "next_question_if_correct": q_data["next_if_correct"],
            "next_question_if_wrong": q_data["next_if_wrong"],
        }
    )
    
    if created:
        print(f"✅ 创建题目 {q_data['question_number']}: {q_data['question_text'][:30]}...")
    else:
        print(f"ℹ️  题目 {q_data['question_number']} 已存在")

print("\n🎉 专题训练数据添加完成！")
print(f"📚 专题名称：{training.title}")
print(f"📝 题目数量：{training.questions.count()}")
